﻿#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:6031)
//2.1 举例1：求n的阶乘
//⼀个正整数的阶乘（factorial）是所有⼩于及等于该数的正整数的积，并且0的阶乘为1。
//⾃然数n的阶乘写作n!。
//递归
//#include<stdio.h>
//int factorial(int n);
//int main()
//{
//	int m = 0;
//	scanf("%d", &m);
//	printf("%d",factorial(m));
//	return 0;
//}
//int factorial(int n)
//{
//	if (n == 0)
//	{
//		return 1;
//	}
//	else
//	{
//		return n * factorial(n - 1);
//	}
//}
//非递归
//#include<stdio.h>
//int main()
//{
//	int i;
//	int m = 0;
//	int re = 1;
//	scanf("%d",&m);
//	for (i = 1; i <= m; i++)
//	{
//		re = i * re;
//	}
//	printf("%d", re);
//	return 0;
//}
//2.2 举例2：顺序打印⼀个整数的每⼀位
//输⼊⼀个整数m，按照顺序打印整数的每⼀位。
//⽐如：
//输⼊：1234 输出：12 3 4
//输⼊：520 输出：5 2 0
//递归
//#include<stdio.h>
//void happy(int n);
//void happy(int n)
//{
//	if (n > 9)
//	{
//		happy(n / 10);
//	}
//	printf("%d ", n % 10);
//}
//int main()
//{
//	int m=0;
//	scanf("%d",&m);
//	happy(m);
//	return 0;
//}
// 非递归
//#include<stdio.h>
//int main()
//{
//	int n = 0;
//	int i = 0;
//	int r;
//	int count=0;
//	int a[50] = { 0 };
//	scanf("%d",&n);
//	do
//	{
//		r = n % 10;
//		a[i] = {r};
//		n = n / 10;
//		i++;
//		count++;
//	} while (n);
//	for (i =count-1 ; i >= 0; i--)
//	{
//		printf("%d ",a[i]);
//	}
//	return 0;
//}
//举例3：求第n个斐波那契数的值
//#include<stdio.h>
//int Fib(int m);
//int main()
//{
//	int m = 0;
//	scanf("%d",&m);
//	printf("%d", Fib(m));
//	return 0;
//}
//int Fib(int n)
//{
//	if (n <= 2)
//	{
//		return 1;
//	}
//	else
//	{
//		return Fib(n - 1) + Fib(n - 2);
//	}
//
//}
//拓展:青蛙跳台阶
//#include<stdio.h>
//int jump(int n);
//int jump(int n)
//{
//	if (n == 1)
//	{
//		return 1;
//	}
//	else if (n == 2)
//	{
//		return  2;
//	}
//	else
//	{
//		return jump(n - 1) + jump(n - 2);
//	}
//}
//int main()
//{
//	int n = 0;
//	scanf("%d",&n);
//	printf("%d",jump(n));
//	return 0;
//}